3D - Least Cost Bracket Sequence - CodeForces Solution


greedy *2600

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ld long double
#define MASK(i) (1LL << (i))
const int inf = 1e18;
const int MAXN = 5e4 + 4;;
int32_t main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	string s;
	cin >> s;
	int cost = 0;
	int cnt = 0;
	set<pair<int, int>> st;
	int i = -1;
	for (char &c : s)
	{
		i++;
		if (c == '(') cnt++;
		else
		{
			cnt--;
			if (c == '?')
			{
				int a, b;
				cin >> a >> b;
				cost += b;
				c = ')';
				st.insert({a - b, i});
			}
			if (cnt < 0)
			{
				if (st.empty())
				{
					cout << -1;
					return 0;
				}
				cnt += 2;
				cost += st.begin()->first;
				s[st.begin()->second] = '(';
				st.erase(st.begin());
			}
		}
	}
	if (cnt) cout << -1;
	else cout << cost << '\n' << s;
	return 0;
}


Comments

Submit
0 Comments
More Questions

1487A - Arena
1520D - Same Differences
376A - Lever
1305A - Kuroni and the Gifts
1609A - Divide and Multiply
149B - Martian Clock
205A - Little Elephant and Rozdil
1609B - William the Vigilant
978B - File Name
1426B - Symmetric Matrix
732B - Cormen --- The Best Friend Of a Man
1369A - FashionabLee
1474B - Different Divisors
1632B - Roof Construction
388A - Fox and Box Accumulation
451A - Game With Sticks
768A - Oath of the Night's Watch
156C - Cipher
545D - Queue
459B - Pashmak and Flowers
1538A - Stone Game
1454C - Sequence Transformation
165B - Burning Midnight Oil
17A - Noldbach problem
1350A - Orac and Factors
1373A - Donut Shops
26A - Almost Prime
1656E - Equal Tree Sums
1656B - Subtract Operation
1656A - Good Pairs